package com.glodon.paas.account.dao;

import java.util.List;

import com.glodon.paas.account.dao.domain.CommunicateEntity;

public interface CommunicateBookDao  extends DBDao<CommunicateEntity, String> {
	int deleteById(String id);
	
	/**
	 * 根据userId，contactId删除单条联系人
	 * @param userId
	 * @return
	 */
	int deleteByContactId(String userId, String contactId);
	
	/**
	 * 删除所有联系人
	 * @param userId
	 * @return
	 */
	int deleteAllByUserId(String userId);
	
	/**
	 * 更具id对非空属性更新
	 * 
	 * @param communicate
	 * @return
	 */
	int updateById(CommunicateEntity communicate);
	
	//int updateRemark(String id, String remarkName, String remarkText);
	
	/**
	 * 根据userId查询其联系人列表
	 * orderType：-1逆序，1顺序,参见DatabaseConst.ORDER_BY_ASC_INT
	 * 
	 * @param userId
	 * @param orderType
	 * @param startIndex
	 * @param count
	 * @return
	 */
	List<CommunicateEntity> selectByUserId(
			String userId,
			int orderType,
			int startIndex, 
			int count);
	
	CommunicateEntity selectByContactId(String userId, String contactId);
	
	/**
	 * 统计联系人数量
	 * @param userId
	 * @return
	 */
	long countByUserId(String userId);
}

